package cn.tedu.basic;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//测试注解--Annotation
public class Test1_Annotation {
    public static void main(String[] args) {




    }
}
//定义一个注解：语法：@interface 注解名
@Retention(RetentionPolicy.SOURCE)//元注解，用来描述主节点生命周期--Java运行时都有效
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.CONSTRUCTOR,ElementType.PARAMETER})
//元注解，用来描述注解出现的位置---出现在类上
@interface Test{
    //String name();//给注解加属性，谁用
    String name() default "jack";//给属性加默认值
    int age() default 18;
    //String value();//可直接赋值
}
//使用注解--必会
@Test(name="Yu",age=19)//给属性赋值
class Yu{
    @Test //加默认值后不赋值也可以
    public Yu(){}//构造方法
    @Test(name = "name")
    String name;//成员变量
    public void Yu(@Test(name = "int") int a){}//参数
}